<!DOCTYPE html>

<html>
  <head>
    <meta charset="utf-8">
    
    <title>numpy.poly &mdash; NumPy v1.18 Manual</title>
    
    <link rel="stylesheet" type="text/css" href="../../_static/css/spc-bootstrap.css">
    <link rel="stylesheet" type="text/css" href="../../_static/css/spc-extend.css">
    <link rel="stylesheet" href="../../_static/scipy.css" type="text/css" >
    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" >
    <link rel="stylesheet" href="../../_static/graphviz.css" type="text/css" >
    
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '../../',
        VERSION:     '1.18.1',
        COLLAPSE_INDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  false
      };
    </script>
    <script type="text/javascript" src="../../_static/jquery.js"></script>
    <script type="text/javascript" src="../../_static/underscore.js"></script>
    <script type="text/javascript" src="../../_static/doctools.js"></script>
    <script type="text/javascript" src="../../_static/language_data.js"></script>
    <script type="text/javascript" src="../../_static/js/copybutton.js"></script>
    <link rel="author" title="About these documents" href="../../about.html" >
    <link rel="index" title="Index" href="../../genindex.html" >
    <link rel="search" title="Search" href="../../search.html" >
    <link rel="top" title="NumPy v1.18 Manual" href="../../index.html" >
    <link rel="up" title="Poly1d" href="../routines.polynomials.poly1d.html" >
    <link rel="next" title="numpy.roots" href="numpy.roots.html" >
    <link rel="prev" title="numpy.polyval" href="numpy.polyval.html" > 
  </head>
  <body>
<div class="container">
  <div class="top-scipy-org-logo-header" style="background-color: #a2bae8;">
    <a href="../../index.html">
      <img border=0 alt="NumPy" src="../../_static/numpy_logo.png"></a>
    </div>
  </div>
</div>


    <div class="container">
      <div class="main">
        
	<div class="row-fluid">
	  <div class="span12">
	    <div class="spc-navbar">
              
    <ul class="nav nav-pills pull-left">
        <li class="active"><a href="https://numpy.org/">NumPy.org</a></li>
        <li class="active"><a href="https://numpy.org/doc">Docs</a></li>
        
        <li class="active"><a href="../../index.html">NumPy v1.18 Manual</a></li>
        

          <li class="active"><a href="../index.html" >NumPy Reference</a></li>
          <li class="active"><a href="../routines.html" >Routines</a></li>
          <li class="active"><a href="../routines.polynomials.html" >Polynomials</a></li>
          <li class="active"><a href="../routines.polynomials.poly1d.html" accesskey="U">Poly1d</a></li> 
    </ul>
              
              
    <ul class="nav nav-pills pull-right">
      <li class="active">
        <a href="../../genindex.html" title="General Index"
           accesskey="I">index</a>
      </li>
      <li class="active">
        <a href="numpy.roots.html" title="numpy.roots"
           accesskey="N">next</a>
      </li>
      <li class="active">
        <a href="numpy.polyval.html" title="numpy.polyval"
           accesskey="P">previous</a>
      </li>
    </ul>
              
	    </div>
	  </div>
	</div>
        

	<div class="row-fluid">
      <div class="spc-rightsidebar span3">
        <div class="sphinxsidebarwrapper">
  <h4>Previous topic</h4>
  <p class="topless"><a href="numpy.polyval.html"
                        title="previous chapter">numpy.polyval</a></p>
  <h4>Next topic</h4>
  <p class="topless"><a href="numpy.roots.html"
                        title="next chapter">numpy.roots</a></p>
<div id="searchbox" style="display: none" role="search">
  <h4>Quick search</h4>
    <div>
    <form class="search" action="../../search.html" method="get">
      <input type="text" style="width: inherit;" name="q" />
      <input type="submit" value="search" />
      <input type="hidden" name="check_keywords" value="yes" />
      <input type="hidden" name="area" value="default" />
    </form>
    </div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
          <div class="span9">
            
        <div class="bodywrapper">
          <div class="body" id="spc-section-body">
            
  <div class="section" id="numpy-poly">
<h1>numpy.poly<a class="headerlink" href="#numpy-poly" title="Permalink to this headline">¶</a></h1>
<dl class="function">
<dt id="numpy.poly">
<code class="sig-prename descclassname">numpy.</code><code class="sig-name descname">poly</code><span class="sig-paren">(</span><em class="sig-param">seq_of_zeros</em><span class="sig-paren">)</span><a class="reference external" href="https://github.com/numpy/numpy/blob/v1.18.1/numpy/lib/polynomial.py#L46-L161"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#numpy.poly" title="Permalink to this definition">¶</a></dt>
<dd><p>Find the coefficients of a polynomial with the given sequence of roots.</p>
<p>Returns the coefficients of the polynomial whose leading coefficient
is one for the given sequence of zeros (multiple roots must be included
in the sequence as many times as their multiplicity; see Examples).
A square matrix (or array, which will be treated as a matrix) can also
be given, in which case the coefficients of the characteristic polynomial
of the matrix are returned.</p>
<dl class="field-list">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><dl class="simple">
<dt><strong>seq_of_zeros</strong><span class="classifier">array_like, shape (N,) or (N, N)</span></dt><dd><p>A sequence of polynomial roots, or a square array or matrix object.</p>
</dd>
</dl>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><dl>
<dt><strong>c</strong><span class="classifier">ndarray</span></dt><dd><p>1D array of polynomial coefficients from highest to lowest degree:</p>
<p><code class="docutils literal notranslate"><span class="pre">c[0]</span> <span class="pre">*</span> <span class="pre">x**(N)</span> <span class="pre">+</span> <span class="pre">c[1]</span> <span class="pre">*</span> <span class="pre">x**(N-1)</span> <span class="pre">+</span> <span class="pre">...</span> <span class="pre">+</span> <span class="pre">c[N-1]</span> <span class="pre">*</span> <span class="pre">x</span> <span class="pre">+</span> <span class="pre">c[N]</span></code>
where c[0] always equals 1.</p>
</dd>
</dl>
</dd>
<dt class="field-odd">Raises</dt>
<dd class="field-odd"><dl class="simple">
<dt><strong>ValueError</strong></dt><dd><p>If input is the wrong shape (the input must be a 1-D or square
2-D array).</p>
</dd>
</dl>
</dd>
</dl>
<div class="admonition seealso">
<p class="admonition-title">See also</p>
<dl class="simple">
<dt><a class="reference internal" href="numpy.polyval.html#numpy.polyval" title="numpy.polyval"><code class="xref py py-obj docutils literal notranslate"><span class="pre">polyval</span></code></a></dt><dd><p>Compute polynomial values.</p>
</dd>
<dt><a class="reference internal" href="numpy.roots.html#numpy.roots" title="numpy.roots"><code class="xref py py-obj docutils literal notranslate"><span class="pre">roots</span></code></a></dt><dd><p>Return the roots of a polynomial.</p>
</dd>
<dt><a class="reference internal" href="numpy.polyfit.html#numpy.polyfit" title="numpy.polyfit"><code class="xref py py-obj docutils literal notranslate"><span class="pre">polyfit</span></code></a></dt><dd><p>Least squares polynomial fit.</p>
</dd>
<dt><a class="reference internal" href="numpy.poly1d.html#numpy.poly1d" title="numpy.poly1d"><code class="xref py py-obj docutils literal notranslate"><span class="pre">poly1d</span></code></a></dt><dd><p>A one-dimensional polynomial class.</p>
</dd>
</dl>
</div>
<p class="rubric">Notes</p>
<p>Specifying the roots of a polynomial still leaves one degree of
freedom, typically represented by an undetermined leading
coefficient. <a class="reference internal" href="#r6c2ffae921d1-1" id="id1">[1]</a> In the case of this function, that coefficient -
the first one in the returned array - is always taken as one. (If
for some reason you have one other point, the only automatic way
presently to leverage that information is to use <code class="docutils literal notranslate"><span class="pre">polyfit</span></code>.)</p>
<p>The characteristic polynomial, <img class="math" src="../../_images/math/d2b117a35feec1fb3e35f40ee9fc01d78aae4256.svg" alt="p_a(t)"/>, of an <em class="xref py py-obj">n</em>-by-<em class="xref py py-obj">n</em>
matrix <strong>A</strong> is given by</p>
<blockquote>
<div><p><img class="math" src="../../_images/math/f4bd8f27508085ee1dc6b3b27041513cfbfa0d5a.svg" alt="p_a(t) = \mathrm{det}(t\, \mathbf{I} - \mathbf{A})"/>,</p>
</div></blockquote>
<p>where <strong>I</strong> is the <em class="xref py py-obj">n</em>-by-<em class="xref py py-obj">n</em> identity matrix. <a class="reference internal" href="#r6c2ffae921d1-2" id="id2">[2]</a></p>
<p class="rubric">References</p>
<dl class="citation">
<dt class="label" id="r6c2ffae921d1-1"><span class="brackets"><a class="fn-backref" href="#id1">1</a></span></dt>
<dd><p>M. Sullivan and M. Sullivan, III, “Algebra and Trignometry,
Enhanced With Graphing Utilities,” Prentice-Hall, pg. 318, 1996.</p>
</dd>
<dt class="label" id="r6c2ffae921d1-2"><span class="brackets"><a class="fn-backref" href="#id2">2</a></span></dt>
<dd><p>G. Strang, “Linear Algebra and Its Applications, 2nd Edition,”
Academic Press, pg. 182, 1980.</p>
</dd>
</dl>
<p class="rubric">Examples</p>
<p>Given a sequence of a polynomial’s zeros:</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">np</span><span class="o">.</span><span class="n">poly</span><span class="p">((</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">))</span> <span class="c1"># Multiple root example</span>
<span class="go">array([1., 0., 0., 0.])</span>
</pre></div>
</div>
<p>The line above represents z**3 + 0*z**2 + 0*z + 0.</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">np</span><span class="o">.</span><span class="n">poly</span><span class="p">((</span><span class="o">-</span><span class="mf">1.</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mf">1.</span><span class="o">/</span><span class="mi">2</span><span class="p">))</span>
<span class="go">array([ 1.  ,  0.  , -0.25,  0.  ])</span>
</pre></div>
</div>
<p>The line above represents z**3 - z/4</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">np</span><span class="o">.</span><span class="n">poly</span><span class="p">((</span><span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">random</span><span class="p">(</span><span class="mi">1</span><span class="p">)[</span><span class="mi">0</span><span class="p">],</span> <span class="mi">0</span><span class="p">,</span> <span class="n">np</span><span class="o">.</span><span class="n">random</span><span class="o">.</span><span class="n">random</span><span class="p">(</span><span class="mi">1</span><span class="p">)[</span><span class="mi">0</span><span class="p">]))</span>
<span class="go">array([ 1.        , -0.77086955,  0.08618131,  0.        ]) # random</span>
</pre></div>
</div>
<p>Given a square array object:</p>
<div class="doctest highlight-default notranslate"><div class="highlight"><pre><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">P</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([[</span><span class="mi">0</span><span class="p">,</span> <span class="mf">1.</span><span class="o">/</span><span class="mi">3</span><span class="p">],</span> <span class="p">[</span><span class="o">-</span><span class="mf">1.</span><span class="o">/</span><span class="mi">2</span><span class="p">,</span> <span class="mi">0</span><span class="p">]])</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">np</span><span class="o">.</span><span class="n">poly</span><span class="p">(</span><span class="n">P</span><span class="p">)</span>
<span class="go">array([1.        , 0.        , 0.16666667])</span>
</pre></div>
</div>
<p>Note how in all cases the leading coefficient is always 1.</p>
</dd></dl>

</div>


          </div>
        </div>
          </div>
        </div>
      </div>
    </div>

    <div class="container container-navbar-bottom">
      <div class="spc-navbar">
        
      </div>
    </div>
    <div class="container">
    <div class="footer">
    <div class="row-fluid">
    <ul class="inline pull-left">
      <li>
        &copy; Copyright 2008-2019, The SciPy community.
      </li>
      <li>
      Last updated on Feb 20, 2020.
      </li>
      <li>
      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> 2.4.2.
      </li>
    </ul>
    </div>
    </div>
    </div>
  </body>
</html>